古いAWSマネージドポリシー「AWSConfigRule」の利用を特定する方法
こんにちは、臼田です。
みなさん、CloudTrailでログ眺めてますか?(挨拶
今回はログを眺めていて気づいたAWS Configの問題の解決策を備忘録としてまとめます。
ConfigのIAM RoleがAccessDeniedを出していた
あるときCloudTrailのログを眺めていたら、ポツポツとAccessDenied
のエラーコードが目についたので確認してみると、GlueのListJobs
に失敗しているログを確認しました。Configのクローリングのようなので、マネージドポリシーを利用しているのにおかしいなーと思いました。
AWS Configのクローリングでエラーが出ること自体は不思議ではありません。他にもリソース自体が存在していなくてInvalidRequestException
やRegistryPolicyNotFoundException
が出たりしています。
しかしAccessDenied
だけは別です。これは権限がないということなので、そもそも前提がおかしいです。AWSのマネージドなサービスをマネージドなポリシーを利用していたら本来でません。
AWSConfigRoleの廃止
というわけで調べてみたら、Config用のRoleにアタッチされていたAWSConfigRoleというポリシーが2022年7月5日に廃止されていました。
AWS Config の AWS 管理ポリシー AWSConfigRole に関する変更 | Amazon Web Services ブログ
継続した利用自体はできますが、ポリシーがメンテナンスされないため、今回のエラーにつながっていました。
後継としてAWS_ConfigRole
(アンダーバーがついただけ)というポリシーが出ていますのでこちらに置き換える必要がありました。
AWSConfigRole利用の特定
上記AWSブログではConfig Aggregatorと高度なクエリを使ってマルチアカウントで古いポリシーの利用を特定する方法が書いてありました。
しかし、単一アカウントでこのポリシーの利用を確認する方法はもっと簡単なものがありますのでここではそれを紹介します。
IAMポリシーの画面からAWSConfigRole
の詳細ページで「ポリシーの使用状況」タブを表示することで対象のIAMエンティティを確認できます。
URLとしては下記です。
しっかりとこの画面で「このポリシーは廃止されました。」と出ていますね。
ポリシーの更新が必要な場合は、新しいポリシーをアタッチし、古いものを外しましょう。
まとめ
AWS Configの古いポリシーの利用を特定する方法を紹介しました。
IAMポリシーの「ポリシーの使用状況」は他にも使えるので覚えておいて損がない要素ですね。